package com.xiaohong.AutoCode.util;

/**
 * @author xiaohong
 * @Description
 * @date 2020/11/15 0015 12:05
 */
public class JavaTypes {
    /***
     * 根据java.sql.Types的值返回java的类型
     * @param value
     * @return
     */
    public static String getType(int value){
        switch (value){
            case -7:
                return "java.lang.Integer";
            case 7: // float
                return "java.lang.Float";
            case -6: // tinyint
                return "java.lang.Integer";
            case 5: // smallint
                return "java.lang.Integer";
            case 4: // int mediumint integer(不建议使用) mediumint
                return "java.lang.Integer";
            case 3: // decimal
                return "java.math.BigDecimal";
            case -3: // varbinary tinyblob
                return "java.lang.String";
            case -4: // blob longblob mediumblob
                return "java.lang.byte[]";
            case -5: // bigint
                return "java.math.BigInteger";
            case -2: // binary geometry geomcollection multipolygon point polygon linestring multilinestring multipoint
                return "java.lang.String";
            case 6:
                return "java.lang.Float";
            case 8: // double real(不建议使用)
                return "java.lang.Double";
            case 1: // char enum set
                return "java.lang.String";
            case 12: // varchar tinytext
                return "java.lang.String";
            case -1: // json text longtext mediumtext
                return "java.lang.String";
            case 91: // data year
                return "java.util.Date";
            case 92: // time
                return "java.util.Date";
            case 93: // datetime timestamp
                return "java.util.Date";
            case 16:
                return "java.lang.Boolean";
            default:
                return "java.lang.String";
        }
    }

    /***
     * 去掉数据类型的包
     * @param type
     * @return
     */
    public static String simpleName(String type){
        return type.replace("java.lang.","").replaceFirst("java.util.","");
    }

    /***
     * 去掉数据类型的包，并且首字母小写
     * @param type
     * @return
     */
    public static  String simpleNameLowerFirst(String type){
        //去掉前缀
        type = simpleName(type);
        //将第一个字母转成小写
        return StringUtils.firstLower(type);
    }
}
